home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 7684 / 7684.xpi / chrome / firefm.jar / content / fmVideoDialog.js < prev    next >
Text File  |  2009-07-04  |  3KB  |  76 lines

  1. /**
  2.  * Copyright (c) 2008, Jose Enrique Bolanos, Jorge Villalobos
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions are met:
  7.  *
  8.  *  * Redistributions of source code must retain the above copyright notice,
  9.  *    this list of conditions and the following disclaimer.
  10.  *  * Redistributions in binary form must reproduce the above copyright notice,
  11.  *    this list of conditions and the following disclaimer in the documentation
  12.  *    and/or other materials provided with the distribution.
  13.  *  * Neither the name of Jose Enrique Bolanos, Jorge Villalobos nor the names
  14.  *    of its contributors may be used to endorse or promote products derived
  15.  *    from this software without specific prior written permission.
  16.  *
  17.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  18.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  19.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  20.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
  21.  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  22.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  23.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  24.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  25.  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  26.  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  27.  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28.  **/
  29.  
  30. Components.utils.import("resource://firefm/fmCommon.js");
  31.  
  32. // Regular expression of a youtube URL enclosed by ""
  33. const REGEX_YOUTUBE_URL = /"(http.+?youtube.+?)"/gi;
  34.  
  35. /**
  36.  * FireFM chrome namespace. We need a separate one because this one is defined
  37.  * per window.
  38.  */
  39. if (typeof(FireFMChrome) == 'undefined') {
  40.   var FireFMChrome = {};
  41. };
  42.  
  43. /**
  44.  * Video dialog controller..
  45.  */
  46. FireFMChrome.VideoDialog = {
  47.  
  48.   /* Logger for this object. */
  49.   _logger : null,
  50.  
  51.   /**
  52.    * Initializes the object.
  53.    */
  54.   init : function() {
  55.     this._logger = FireFM.getLogger("FireFMChrome.VideoDialog");
  56.     this._logger.debug("init");
  57.  
  58.     let video = window.arguments[0].track.video;
  59.  
  60.     // If video is from youtube, append "rel=0" to the URL to disable related
  61.     // videos.
  62.     let youtubeURLMatch = REGEX_YOUTUBE_URL.exec(video);
  63.     if (youtubeURLMatch) {
  64.       video = video.replace(
  65.         youtubeURLMatch[1], youtubeURLMatch[1] + encodeURIComponent("&rel=0"));
  66.     }
  67.  
  68.     let div = document.createElementNS("http://www.w3.org/1999/xhtml", "div");
  69.     div.innerHTML = video;
  70.     document.getElementById("fm-video-container").appendChild(div);
  71.   }
  72. };
  73.  
  74. window.addEventListener(
  75.   "load", function() { FireFMChrome.VideoDialog.init(); }, false);
  76.